package vip.bblog.quartz.service;

import org.quartz.JobDataMap;
import org.quartz.SchedulerException;
import vip.bblog.common.utils.BaseResult;
import vip.bblog.quartz.entity.QuartzJob;

/**
 * @author <a href="1396513066@qq.com">Yu Yong</a>
 * @version 1.0
 * @date 2019年06月17日 16:54
 * @desc jobService job service
 */
public interface JobService {

    /**
     * 添加任务
     *
     * @param quartzJob
     */
    void saveOrUpdateJob(QuartzJob quartzJob);

    /**
     * 删除任务
     *
     * @param quartzJob
     * @throws SchedulerException
     */
    void deleteJob(QuartzJob quartzJob);

    /**
     * 暂停任务
     *
     * @param quartzJob
     */
    void pauseJob(QuartzJob quartzJob);

    /**
     * 恢复任务
     *
     * @param quartzJob
     */
    void resumeJob(QuartzJob quartzJob);

    /**
     * 执行任务
     *
     * @param jobDataMap
     */
    void doJob(JobDataMap jobDataMap);

    BaseResult<Object> list();
}
